// import WebSocket from 'ws';
// import { Game } from '../class/Game';
// import { MessageType } from '../class/messageType';


// function linkWebSocket(QQ: string, verifyKey: string, host: string = "ws://localhost:30888") {
//     let ws: WebSocket
//     for (let i = 1; i <= 3; i++) {
//         try {
//             ws = new WebSocket(`${host}/message?verifyKey=${verifyKey}&qq=${QQ}`)
//             return ws;
//         } catch (e) {
//             console.error((e as Error).message)
//             console.log(`${QQ} 连接失败，进行第${i}次尝试。`)
//         }
//     }
//     console.error("WebSocket 没有连接上服务器端，程序终止。")
//     process.exit()
// }

// /** 创建一个client */
// export function launch(QQ: string, verifyKey: string, host: string = "ws://localhost:30888") {

//     const websocket = linkWebSocket(QQ, verifyKey, host);

//     websocket.onopen = function () {
//         console.log("连接成功");
//         // sendFriendMessage("1517607397", [MessageType.toPlain("hello world")]);
//         // sendGroupMessage("383968751", [MessageType.toPlain("hello world")]);
//     }

//     websocket.onmessage = function (data) {
//         // 将收到的字符串转换成 对象
//         const message = JSON.parse(data.data.toString()).data as unknown as MessageType
//         console.log(message);

//         // 判断消息类型必须使群消息
//         if (message.type === "GroupMessage") {
//             /** 群 ID */
//             const groupId = message.sender.group.id.toString();
//             /** 命令 */
//             const commandText = MessageType.toCommand(message.messageChain)

//             // 开始游戏
//             if (message.sender.group.permission !== "MEMBER" && !Game.hasGame(groupId)) {
//                 if (commandText.trim() === '开始游戏') {
//                     new Game(message.sender.group.id.toString())
//                     return; // 终止
//                 }
//             }
//             // 结束游戏
//             if (message.sender.group.permission !== "MEMBER" && Game.hasGame(groupId)) {
//                 if (commandText.trim() === '结束游戏') {
//                     Game.killGame(groupId)
//                     return;// 终止
//                 }
//             }
//             // 执行指令
//             if (Game.hasGame(groupId)) {
//                 const game = Game.getGame(groupId);
//                 game.excute(`${message.sender.id} ${message.sender.memberName} ${commandText}`);
//             }
//         }

//     }
//     return websocket;
// }

// export function sendGroupMessage(groupId: string, messageChain: MessageType[]) {
//     console.log(JSON.stringify(messageChain))
//     websocket.send(JSON.stringify({
//         "syncId": 123,                  // 消息同步的字段
//         "command": "sendGroupMessage", // 命令字
//         "subCommand": null,             // 子命令字, 可空
//         "content": {// 命令的数据对象, 与通用接口定义相同
//             "target": groupId,
//             "messageChain": messageChain
//         }
//     }))
// }

// export function sendFriendMessage(qq: string, messageChain: MessageType[]) {
//     websocket.send(JSON.stringify({
//         "syncId": 123,                  // 消息同步的字段
//         "command": "sendFriendMessage", // 命令字
//         "subCommand": null,             // 子命令字, 可空
//         "content": {// 命令的数据对象, 与通用接口定义相同
//             "target": qq,
//             "messageChain": messageChain
//         }
//     }))
// }

// export function TempMessage(qq: string, groupId: string, messageChain: MessageType[]) {
//     websocket.send(JSON.stringify({
//         "syncId": 123,                  // 消息同步的字段
//         "command": "TempMessage", // 命令字
//         "subCommand": null,             // 子命令字, 可空
//         "content": {// 命令的数据对象, 与通用接口定义相同
//             "qq": qq,
//             "group": groupId,
//             "messageChain": messageChain
//         }
//     }))
// }